package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.OperateUpdateInfoGetPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateUpdateUpdateInfoDTO;
import com.itlong.cloud.POJO.VO.operate.DeviceTypeDefineVO;
import com.itlong.cloud.POJO.VO.operate.OperateUpdateDetailVO;
import com.itlong.cloud.POJO.VO.operate.OperateUpdateInfoVO;
import com.itlong.cloud.utils.page.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <desc>
 *      运营-固件升级-安装包管理服务接口。
 * <desc/>
 *
 * @createDate 2018/08/23.
 */
public interface IOperatePackageService {

    /**
     * <desc>
     *      分页获取安装包信息。
     * <desc/>
     *
     * @param  operateUpdateInfoGetPageDTO 参数请求对象
     * @return
     * @author Qiang.S
     * @createDate 2018/08/23
     */
    Page<OperateUpdateInfoVO> getUpdateInfoPage(OperateUpdateInfoGetPageDTO operateUpdateInfoGetPageDTO) throws Exception;

    /**
     * <desc>
     *      批量删除安装包信息
     * <desc/>
     *
     * @param updateIds 更新文件编号,逗号分隔
     * @return
     * @author Qiang.S
     * @createDate 2018-08-23
     */
    Integer deleteUpdateInfo(String updateIds, String userId,
                             String operateFunction, String operateWay,String updateNames , String ip ) throws Exception;

    /**
     * <desc>
     *      根据名称查询结果
     * <desc/>
     *
     * @param updateName 文件名称
     * @return
     * @author Qiang.S
     * @createDate 2018-08-23
     */
    String getUpdateInfoByName(String updateName) throws Exception;

    /**
     * <desc>
     *      获取安装包详细信息。
     * <desc/>
     *
     * @param updateId 更新文件编号
     * @return
     * @author Qiang.S
     * @createDate 2018/08/23
     */
    OperateUpdateDetailVO getUpdateDetail(String updateId) throws Exception;

    /**
     * <desc>
     *      安装包信息更新(未更新安装文件时使用)
     * <desc/>
     *
     * @param operateUpdateUpdateInfoDTO 更新安装包信息
     * @return
     * @author Qiang.S
     * @createDate 2018-08-28
     */
    Integer updateUpdateInfo(OperateUpdateUpdateInfoDTO operateUpdateUpdateInfoDTO) throws Exception;


   /**
   *<desc>
   *   根据产品类型查询产品型号
   *</desc>
   *
   * @Author  chengshican
   * @Date   2020-11-11 15:49
   * @Param   deviceTypes
   * @Return
   * @Exception
   *
   */
    List<DeviceTypeDefineVO> getProductCodeByDeviceType( String deviceTypes) throws Exception;


    

}
